package core {
	import flash.display.DisplayObject;
	import flash.geom.Point;
	/**
	 * ...
	 * @author Zszen John
	 */
	public class PositionFormat {
		/**
		 * 获取当前点的绝对坐标位置, 浮点值, 虽然比local2global慢5倍, 但是获取的位置是精确的
		 * @param	mc 显示对象, 并非一定被加载到stage内
		 * @param	level 若只想向上冒泡到一定层级的位置, 请设置为相对层级数
		 * @return 返回此位置
		 */
		static public function abs(mc:DisplayObject, level:int = 0):Point {
			var p:Point=new Point(mc.x,mc.y)
			var parent:DisplayObject = mc.parent;
			var len:Number;
			var angle:Number;
			var nowlevel:int = 0;
			while (parent != null) {
				if (nowlevel>level && level != 0) {
					break;
				}
				nowlevel += 1;
				p.x *= parent.scaleX / 1;
				p.y *= parent.scaleY / 1;
				len = Math.sqrt(p.x * p.x + p.y * p.y);
				angle = Math.atan2(p.y, p.x)+parent.rotation*3.14/180;
				p.x = len*Math.cos(angle);
				p.y = len*Math.sin(angle);
				p.x += parent.x;
				p.y += parent.y;
				parent=parent.parent
			}
			return (p);
		}
	}
}